#include "IniUtil.h"

int CIniUtil::ReadIntParam(const QString& strFile, const QString& strGroup, const QString& strKey, int iDefaultValue /*= 0*/)
{
    if (strFile.isEmpty())
    {
        return 0;
    }

    if (strGroup.isEmpty())
    {
        return 0;
    }

    if (strKey.isEmpty())
    {
        return 0;
    }

    //保存配置文件中的参数
    QSettings setFile(strFile, QSettings::IniFormat);
    setFile.setIniCodec("UTF-8");
    return setFile.value(QString("%1/%2").arg(strGroup).arg(strKey), iDefaultValue).toInt();
}

float CIniUtil::ReadFloatParam(const QString& strFile, const QString& strGroup, const QString& strKey, float fDefaultValue /*= 0.0*/)
{
    if (strFile.isEmpty())
    {
        return 0.0;
    }

    if (strGroup.isEmpty())
    {
        return 0.0;
    }

    if (strKey.isEmpty())
    {
        return 0.0;
    }

    //保存配置文件中的参数
    QSettings setFile(strFile, QSettings::IniFormat);
    setFile.setIniCodec("UTF-8");
    return setFile.value(QString("%1/%2").arg(strGroup).arg(strKey), fDefaultValue).toFloat();
}

QString CIniUtil::ReadStringParam(const QString& strFile, const QString& strGroup, const QString& strKey, QString strDefaultValue /*= ""*/)
{
    if (strFile.isEmpty())
    {
        return "";
    }

    if (strGroup.isEmpty())
    {
        return "";
    }

    if (strKey.isEmpty())
    {
        return "";
    }

    //保存配置文件中的参数
    QSettings setFile(strFile, QSettings::IniFormat);
    setFile.setIniCodec("UTF-8");
    return setFile.value(QString("%1/%2").arg(strGroup).arg(strKey), strDefaultValue).toString();
}

void CIniUtil::WriteIntParam(const QString& strFile, const QString& strGroup, const QString& strKey, int ivalue)
{
    if (strFile.isEmpty())
    {
        return;
    }

    if (strGroup.isEmpty())
    {
        return;
    }

    if (strKey.isEmpty())
    {
        return;
    }

    //保存配置文件中的参数
    QSettings setFile(strFile, QSettings::IniFormat);
    setFile.setIniCodec("UTF-8");
    setFile.setValue(QString("%1/%2").arg(strGroup).arg(strKey), ivalue);
}

void CIniUtil::WriteFloatParam(const QString& strFile, const QString& strGroup, const QString& strKey, float fvalue, int prec /*= 1*/)
{
    if (strFile.isEmpty())
    {
        return;
    }

    if (strGroup.isEmpty())
    {
        return;
    }

    if (strKey.isEmpty())
    {
        return;
    }

    //保存配置文件中的参数
    QSettings setFile(strFile, QSettings::IniFormat);
    setFile.setIniCodec("UTF-8");
    setFile.setValue(QString("%1/%2").arg(strGroup).arg(strKey), QString::number(fvalue,'f', prec));
}

void CIniUtil::WriteStringParam(const QString& strFile, const QString& strGroup, const QString& strKey, QString strvalue)
{
    if (strFile.isEmpty())
    {
        return;
    }

    if (strGroup.isEmpty())
    {
        return;
    }

    if (strKey.isEmpty())
    {
        return;
    }

    //保存配置文件中的参数
    QSettings setFile(strFile, QSettings::IniFormat);
    setFile.setIniCodec("UTF-8");
    setFile.setValue(QString("%1/%2").arg(strGroup).arg(strKey), strvalue);
}
